package com.ghj.utils.bmap;

import com.ghj.utils.httpclient.Callback;
import com.ghj.utils.httpclient.GetRequest;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

public class GetGeoCoding {
    public static void main(String[] args) throws IOException {
        Map<String, String> map = new HashMap<>();
        map.put("370000","山东省");
        map.put("370100","山东省济南市");
        map.put("370101","山东省济南市市辖区");
        map.put("370102","山东省济南市历下区");
        map.put("370103","山东省济南市市中区");
        map.put("370104","山东省济南市槐荫区");
        map.put("370105","山东省济南市天桥区");
        map.put("370112","山东省济南市历城区");
        map.put("370123","山东省济南市长清县");
        map.put("370124","山东省济南市平阴县");
        map.put("370125","山东省济南市济阳县");
        map.put("370126","山东省济南市商河县");
        map.put("370181","山东省济南市章丘市");
        map.put("370200","山东省青岛市");
        map.put("370201","山东省青岛市市辖区");
        map.put("370202","山东省青岛市市南区");
        map.put("370203","山东省青岛市市北区");
        map.put("370205","山东省青岛市四方区");
        map.put("370211","山东省青岛市黄岛区");
        map.put("370212","山东省青岛市崂山区");
        map.put("370213","山东省青岛市李沧区");
        map.put("370214","山东省青岛市城阳区");
        map.put("370281","山东省青岛市胶州市");
        map.put("370282","山东省青岛市即墨市");
        map.put("370283","山东省青岛市平度市");
        map.put("370284","山东省青岛市胶南市");
        map.put("370285","山东省青岛市莱西市");
        map.put("370300","山东省淄博市");
        map.put("370301","山东省淄博市市辖区");
        map.put("370302","山东省淄博市淄川区");
        map.put("370303","山东省淄博市张店区");
        map.put("370304","山东省淄博市博山区");
        map.put("370305","山东省淄博市临淄区");
        map.put("370306","山东省淄博市周村区");
        map.put("370321","山东省淄博市桓台县");
        map.put("370322","山东省淄博市高青县");
        map.put("370323","山东省淄博市沂源县");
        map.put("370400","山东省枣庄市");
        map.put("370401","山东省枣庄市市辖区");
        map.put("370402","山东省枣庄市市中区");
        map.put("370403","山东省枣庄市薛城区");
        map.put("370404","山东省枣庄市峄城区");
        map.put("370405","山东省枣庄市台儿庄区");
        map.put("370406","山东省枣庄市山亭区");
        map.put("370481","山东省枣庄市滕州市");
        map.put("370500","山东省东营市");
        map.put("370501","山东省东营市市辖区");
        map.put("370502","山东省东营市东营区");
        map.put("370503","山东省东营市河口区");
        map.put("370521","山东省东营市垦利县");
        map.put("370522","山东省东营市利津县");
        map.put("370523","山东省东营市广饶县");
        map.put("370600","山东省烟台市");
        map.put("370601","山东省烟台市市辖区");
        map.put("370602","山东省烟台市芝罘区");
        map.put("370611","山东省烟台市福山区");
        map.put("370612","山东省烟台市牟平区");
        map.put("370613","山东省烟台市莱山区");
        map.put("370634","山东省烟台市长岛县");
        map.put("370681","山东省烟台市龙口市");
        map.put("370682","山东省烟台市莱阳市");
        map.put("370683","山东省烟台市莱州市");
        map.put("370684","山东省烟台市蓬莱市");
        map.put("370685","山东省烟台市招远市");
        map.put("370686","山东省烟台市栖霞市");
        map.put("370687","山东省烟台市海阳市");
        map.put("370700","山东省潍坊市");
        map.put("370701","山东省潍坊市市辖区");
        map.put("370702","山东省潍坊市潍城区");
        map.put("370703","山东省潍坊市寒亭区");
        map.put("370704","山东省潍坊市坊子区");
        map.put("370705","山东省潍坊市奎文区");
        map.put("370724","山东省潍坊市临朐县");
        map.put("370725","山东省潍坊市昌乐县");
        map.put("370781","山东省潍坊市青州市");
        map.put("370782","山东省潍坊市诸城市");
        map.put("370783","山东省潍坊市寿光市");
        map.put("370784","山东省潍坊市安丘市");
        map.put("370785","山东省潍坊市高密市");
        map.put("370786","山东省潍坊市昌邑市");
        map.put("370800","山东省济宁市");
        map.put("370801","山东省济宁市市辖区");
        map.put("370802","山东省济宁市市中区");
        map.put("370811","山东省济宁市任城区");
        map.put("370826","山东省济宁市微山县");
        map.put("370827","山东省济宁市鱼台县");
        map.put("370828","山东省济宁市金乡县");
        map.put("370829","山东省济宁市嘉祥县");
        map.put("370830","山东省济宁市汶上县");
        map.put("370831","山东省济宁市泗水县");
        map.put("370832","山东省济宁市梁山县");
        map.put("370881","山东省济宁市曲阜市");
        map.put("370882","山东省济宁市兖州市");
        map.put("370883","山东省济宁市邹城市");
        map.put("370900","山东省泰安市");
        map.put("370901","山东省泰安市市辖区");
        map.put("370902","山东省泰安市泰山区");
        map.put("370911","山东省泰安市郊区");
        map.put("370921","山东省泰安市宁阳县");
        map.put("370923","山东省泰安市东平县");
        map.put("370982","山东省泰安市新泰市");
        map.put("370983","山东省泰安市肥城市");
        map.put("371000","山东省威海市");
        map.put("371001","山东省威海市市辖区");
        map.put("371002","山东省威海市环翠区");
        map.put("371081","山东省威海市文登市");
        map.put("371082","山东省威海市荣成市");
        map.put("371083","山东省威海市乳山市");
        map.put("371100","山东省日照市");
        map.put("371101","山东省日照市市辖区");
        map.put("371102","山东省日照市东港区");
        map.put("371121","山东省日照市五莲县");
        map.put("371122","山东省日照市莒县");
        map.put("371200","山东省莱芜市");
        map.put("371201","山东省莱芜市市辖区");
        map.put("371202","山东省莱芜市莱城区");
        map.put("371203","山东省莱芜市钢城区");
        map.put("371300","山东省临沂市");
        map.put("371301","山东省临沂市市辖区");
        map.put("371302","山东省临沂市兰山区");
        map.put("371311","山东省临沂市罗庄区");
        map.put("371312","山东省临沂市河东区");
        map.put("371321","山东省临沂市沂南县");
        map.put("371322","山东省临沂市郯城县");
        map.put("371323","山东省临沂市沂水县");
        map.put("371324","山东省临沂市苍山县");
        map.put("371325","山东省临沂市费县");
        map.put("371326","山东省临沂市平邑县");
        map.put("371327","山东省临沂市莒南县");
        map.put("371328","山东省临沂市蒙阴县");
        map.put("371329","山东省临沂市临沭县");
        map.put("371400","山东省德州市");
        map.put("371401","山东省德州市市辖区");
        map.put("371402","山东省德州市德城区");
        map.put("371421","山东省德州市陵县");
        map.put("371422","山东省德州市宁津县");
        map.put("371423","山东省德州市庆云县");
        map.put("371424","山东省德州市临邑县");
        map.put("371425","山东省德州市齐河县");
        map.put("371426","山东省德州市平原县");
        map.put("371427","山东省德州市夏津县");
        map.put("371428","山东省德州市武城县");
        map.put("371481","山东省德州市乐陵市");
        map.put("371482","山东省德州市禹城市");
        map.put("371500","山东省聊城市");
        map.put("371501","山东省聊城市市辖区");
        map.put("371502","山东省聊城市东昌府区");
        map.put("371521","山东省聊城市阳谷县");
        map.put("371522","山东省聊城市莘县");
        map.put("371523","山东省聊城市茌平县");
        map.put("371524","山东省聊城市东阿县");
        map.put("371525","山东省聊城市冠县");
        map.put("371526","山东省聊城市高唐县");
        map.put("371581","山东省聊城市临清市");
        map.put("372300","山东省滨州地区");
        map.put("372301","山东省滨州地区滨州市");
        map.put("372321","山东省滨州地区惠民县");
        map.put("372323","山东省滨州地区阳信县");
        map.put("372324","山东省滨州地区无棣县");
        map.put("372325","山东省滨州地区沾化县");
        map.put("372328","山东省滨州地区博兴县");
        map.put("372330","山东省滨州地区邹平县");
        map.put("372900","山东省菏泽地区");
        map.put("372901","山东省菏泽地区菏泽市");
        map.put("372922","山东省菏泽地区曹县");
        map.put("372923","山东省菏泽地区定陶县");
        map.put("372924","山东省菏泽地区成武县");
        map.put("372925","山东省菏泽地区单县");
        map.put("372926","山东省菏泽地区巨野县");
        map.put("372928","山东省菏泽地区郓城县");
        map.put("372929","山东省菏泽地区鄄城县");
        map.put("372930","山东省菏泽地区东明县");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            sendReqAndPrint(entry.getKey(), entry.getValue());
        }
    }

    private static void sendReqAndPrint(String code, String name) throws IOException {
        GetRequest req = new GetRequest("http://api.map.baidu.com/geocoder/v2/").
                param("address", name).
                param("output", "json").
                param("ak", "填写你的ak");
        try {
            req.execute(new Callback() {
                @Override
                public void call(Map map) {
                    Map<String, Map> result = (Map<String, Map>) map.get("result");
                    Map<String, Float> location = (Map<String, Float>) result.get("location");
                    System.out.printf("%s %s [%s, %s]\n", code, name, location.get("lng"), location.get("lat"));
                }
            });
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (req != null) {
                req.depose();
            }
        }
    }
}
